iT邦幫忙

2023 iThome 鐵人賽

DAY 19
0
Cloud Native

【하나, 둘, ready, get set, go】系列 第 19

【하나, 둘, ready, get set, go】Day 19 - 使用 GORM 連接 SQL 資料庫

  • 分享至 

  • xImage
  •  

前情提要

講完 Go 基礎後,就要來開始進到實作了~

今天要來介紹的是,如何使用 Go 連接 SQL 資料庫

我們這邊使用的 SQL 資料庫是輕量、跨平台的 SQLite

實際操作

ORM 簡介

既然要連接資料庫,那就不得不提到 ORM (Object Relational Mapping),中文叫做 物件關聯映射

ORM 可以想像成開發人員與 SQL 資料庫之間的中間層

開發人員使用 ORM 提供的 method 來對進行資料庫操作

ORM 收到開發人員下的 method 後,轉換成相對應的 SQL 指令,來與 SQL 資料庫進行互動

整個操作流程會變成像是下面這張圖

ORM 操作流程圖

GORM

我們這邊選擇使用的 ORM 是 GORM
一個 Go 開發首選的 ORM 套件,GORM 具有以下特色 (以下取自於 GORM 官網)

GORM 特色

安裝 GORM 與 SQLite Driver

簡單介紹完 GORM 後,我們就要來進行安裝啦

這邊會假設大家都已經剛新建好一個專案,如果還沒新建好的話,可以回去看 Day 3 的教學

打開 Terminal 輸入下面指令

安裝 GORM

go get -u gorm.io/gorm

安裝 GORM for SQLite driver

go get -u gorm.io/driver/sqlite

https://ithelp.ithome.com.tw/upload/images/20230906/201403630zquNn6wcG.png

連接 SQLite 資料庫

裝好 GORM 跟 SQLite driver 後,就可以來連接資料庫了~

首先,我們先新增一個資料夾,叫做「database」,然後在裡面新增一個「database.go」的檔案

database.go

package database

import (
    "gorm.io/driver/sqlite"
    "gorm.io/gorm"
)

var DB *gorm.DB

// ConnectDB 連線到 SQLite 資料庫
func ConnectDB() {
    db, err := gorm.Open(sqlite.Open("db.sqlite"))

    if err != nil {
        panic(err)
    }

    err = db.AutoMigrate()
    if err != nil {
        panic(err)
    }

    DB = db
}

main.go

接著在 main.go 裡的 func main() 內呼叫 database.ConnectDB()

package main

import "demo/database"

func main() {
    database.ConnectDB()
}

執行後,就會看到我們的 db.sqlite 檔案生出來了,這樣就算連接好 SQLite 資料庫了~

https://ithelp.ithome.com.tw/upload/images/20230906/20140363CXPqX6KLjD.png

以上 Sample Code 可以在我 GitHub 上找到
https://github.com/leoho0722/it15th

總結

今天簡單介紹了如何使用 GORM 來連接 SQLite 資料庫

明天會來介紹如何使用 GORM 來對資料庫進行資料新增

我們明天見~


上一篇
【하나, 둘, ready, get set, go】Day 18 - sync (下)
下一篇
【하나, 둘, ready, get set, go】Day 20 - 使用 GORM 對 SQL 資料庫進行新增資料 (Create)
系列文
【하나, 둘, ready, get set, go】30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言